export default {
	/**
	 * 去除空格
	 */
	trim(str, pos = 'both') {
		str = String(str)
		if (pos == 'both') {
			return str.replace(/^\s+|\s+$/g, '')
		} if (pos == 'left') {
			return str.replace(/^\s*/, '')
		} if (pos == 'right') {
			return str.replace(/(\s*$)/g, '')
		} if (pos == 'all') {
			return str.replace(/\s+/g, '')
		}
		return str
	},
	/**
	 * 金额加上逗号
	 * @author Jie.
	 */
	priceFormat(s, n) {  
	    n = n > 0 && n <= 20 ? n : 2;
	    s = parseFloat((s + "").replace(/[^\d\.-]/g, "")).toFixed(n) + "";  
	    var l = s.split(".")[0].split("").reverse(), r = s.split(".")[1];  
	    var t = "";  
	    for (var i = 0; i < l.length; i++) {  
	        t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? "," : "");  
	    }  
	    return t.split("").reverse().join("") + "." + r;  
	},
	//单位中文转字符
	unitToChars(str){
		let dict = {
			'平方米':'m²',
			'立方米':'m³',
			'千米':'km',
			'米':'m',
			'厘米':'cm',
			'升':'L',
			'吨':'t',
			'千克':'kg',
			'克':'g',
		}
		return dict[str]?dict[str]:str;
	},
	/*文字格式化*/
	strFormat(src) {
		if (arguments.length == 0) return null;
		var args = Array.prototype.slice.call(arguments, 1);
		return src.replace(/\{(\d+)\}/g, function(m, i) {
			return args[i]
		})
	},
	/**
	 * 将html代码转换为文本
	 * @param {String} html 需要转换的html文本
	 * @return {String} 返回转换后的字符串
	 * @author Jie.
	 * */
	getHtmlText(html) {
	    html += ""; 
	    if (html && html != "null" && html != null) {
	      var content = html 
	        .replace(/<[^<>]+>/g, "")
	        .replace(/(&nbsp;)/g, "")
	      return content
	    } else {
	      return "无内容"
	    }
	},
	/**
	 * 样式转换
	 * 对象转字符串，或者字符串转对象
	 * @param {Object | String} 需要转换的目标
	 * @param {String} 转换的目的，object-转为对象，string-转为字符串
	 */
	addStyle(customStyle, target = 'object') {
	    // 字符串转字符串，对象转对象情形，直接返回
	    if (test.empty(customStyle) || typeof (customStyle) === 'object' && target === 'object' || target === 'string'
	        && typeof (customStyle) === 'string') {
	        return customStyle
	    }
	    // 字符串转对象
	    if (target === 'object') {
	        // 去除字符串样式中的两端空格(中间的空格不能去掉，比如padding: 20px 0如果去掉了就错了)，空格是无用的
	        customStyle = trim(customStyle)
	        // 根据";"将字符串转为数组形式
	        const styleArray = customStyle.split(';')
	        const style = {}
	        // 历遍数组，拼接成对象
	        for (let i = 0; i < styleArray.length; i++) {
	            // 'font-size:20px;color:red;'，如此最后字符串有";"的话，会导致styleArray最后一个元素为空字符串，这里需要过滤
	            if (styleArray[i]) {
	                const item = styleArray[i].split(':')
	                style[trim(item[0])] = trim(item[1])
	            }
	        }
	        return style
	    }
	    // 这里为对象转字符串形式
	    let string = ''
	    for (const i in customStyle) {
	        // 驼峰转为中划线的形式，否则css内联样式，无法识别驼峰样式属性名
	        const key = i.replace(/([A-Z])/g, '-$1').toLowerCase()
	        string += `${key}:${customStyle[i]};`
	    }
	    // 去除两端空格
	    return trim(string)
	}
}